import time

from selenium.webdriver.common.by import By
from CompWchat.Step3.Po.BasePage import BasePage
# from CompWchat.Step3.Po.ContactPage import ContactPage


class AddMemberPage(BasePage):
    # 子类属性覆盖父类属性值
    # 要测试哪个模块，直接进入对应的页面即可
    _base_url = 'https://work.weixin.qq.com/wework_admin/frame#contacts'
    
   
    # 只填写必填信息，非必填信息为空，默认值信息保持不变
    def add_member_base(self, ele_value:list):
        
        """成员信息
        必填 --
        姓名：id='username'  账号：id=memberAdd_acctid  手机：id=memberAdd_phone
        """
        # 在方法内部导入，解决循环导入问题
        from CompWchat.Step3.Po.ContactPage import ContactPage
        
        # 定位元素并操作，必填信息
        self.find(By.ID, 'username').send_keys(ele_value[0])
        self.find(By.ID, 'memberAdd_acctid').send_keys(ele_value[1])
        self.find(By.ID, 'memberAdd_phone').send_keys(ele_value[2])
        # 非必填信息（留空）
        # 默认值信息保持默认
        # 点击保存后跳转到通讯录页面：返回目标对象
        self.driver.find_element(By.CSS_SELECTOR, ".js_btn_save").click()
        return ContactPage(self.driver)

    # 补充非必填信息，默认值信息保持不变
    def add_member_details(self, ele_value:list):
       
        """成员信息
            非必填 --
            别名：id='memberAdd_english_name' 地址：id=memberEdit_address  座机：id=memberAdd_telephone
            邮箱：id=memberAdd_mail 职务：id=memberAdd_title
        """
        # 在方法内部导入，解决循环导入问题
        from CompWchat.Step3.Po.ContactPage import ContactPage
        
        # 定位元素并操作-必填信息
        self.find(By.ID, 'username').send_keys(ele_value[0])
        self.find(By.ID, 'memberAdd_acctid').send_keys(ele_value[1])
        self.find(By.ID, 'memberAdd_phone').send_keys(ele_value[2])
        # 定位元素并操作-非必填信息
        self.find(By.ID, 'memberAdd_english_name').send_keys(ele_value[3])
        self.find(By.ID, 'memberAdd_telephone').send_keys(ele_value[4])
        self.find(By.ID, 'memberAdd_mail').send_keys(ele_value[5])
        self.find(By.ID, 'memberEdit_address').send_keys(ele_value[6])
        self.find(By.ID, 'memberAdd_title').send_keys(ele_value[7])
        # 默认值信息保持默认
        # 点击保存后跳转到通讯录页面：返回目标对象
        self.driver.find_element(By.CSS_SELECTOR, ".js_btn_save").click()
        return ContactPage(self.driver)
    
    # 补充非必填并修改默认值
    def add_member_changedefault(self, ele_value:list):
        
        """成员信息
            默认值 --
            性别为单选按钮：'.ww_radio[0]' 男性  '.ww_radio[1]' 女性
            身份：.ww_radio[0] 普通成员  .ww_radio.js_identity_stat 上级
            职位：.ww_radio.js_identity_out_custom  同步公司内职位
            .ww_radio.js_identity_out_custom 自定义，调用click()为选中
            部门：暂不修改
            """
        # 在方法内部导入，解决循环导入问题
        from CompWchat.Step3.Po.ContactPage import ContactPage
        
        # 定位元素并操作-必填信息
        self.find(By.ID, 'username').send_keys(ele_value[0])
        self.find(By.ID, 'memberAdd_acctid').send_keys(ele_value[1])
        self.find(By.ID, 'memberAdd_phone').send_keys(ele_value[2])
        # 定位元素并操作-非必填信息
        self.find(By.ID, 'memberAdd_english_name').send_keys(ele_value[3])
        self.find(By.ID, 'memberAdd_telephone').send_keys(ele_value[4])
        self.find(By.ID, 'memberAdd_mail').send_keys(ele_value[5])
        self.find(By.ID, 'memberEdit_address').send_keys(ele_value[6])
        self.find(By.ID, 'memberAdd_title').send_keys(ele_value[7])
        # 修改默认信息值
        # 性别 男--》女
        # self.find(By.XPATH, '//*input[@value="2"]').click()
        # 身份 普通成功--》上级
        self.find(By.CSS_SELECTOR, '.ww_radio.js_identity_stat').click()
        # 职位 同步公司内部职位--》自定义，并填写自定义信息
        
        # self.find(By.CSS_SELECTOR, '.ww_radio.js_identity_out_custom').click()
        # # time.sleep(2)
        # self.find(By.NAME, 'extern_position').send_keys(ele_value[8])
        
        # 通过邮件或短信发送企业邀请 勾选--》取消勾选
        self.find(By.NAME, 'sendInvite').click()
        # 点击保存后跳转到通讯录页面：返回目标对象
        self.driver.find_element(By.CSS_SELECTOR, ".js_btn_save").click()
        return ContactPage(self.driver)
        
    
    def add_member_fail(self,ele_value):
        # 通过首页-添加成员进行添加
        # 添加成员id重复导致失败
        from CompWchat.Step3.Po.ContactPage import ContactPage

        # 定位元素并操作，必填信息
        self.find(By.ID, 'username').send_keys(ele_value[0])
        self.find(By.ID, 'memberAdd_acctid').send_keys(ele_value[1])
        self.find(By.ID, 'memberAdd_phone').send_keys(ele_value[2])
        # 非必填信息（留空）
        # 默认值信息保持默认
        # 点击保存后跳转到通讯录页面：返回目标对象
        self.driver.find_element(By.CSS_SELECTOR, ".js_btn_save").click()
        self.driver.find_element(By.CSS_SELECTOR, '.js_btn_save').click()
        return ContactPage(self.driver)
       
   